package com.ding.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import javax.persistence.Column;
import javax.persistence.Transient;
import java.util.Date;
import java.util.List;

/**
 * @author xiongzhiwen
 * @version 1.0
 * @date 2024/4/1 9:28
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class Di_userDto {

    @ApiModelProperty(value = "序号")
    private String id;

    @ApiModelProperty(value = "外部编号")
    private String foreignId;

    /**
     * -1已删除；>=0正常
     */
    @ApiModelProperty(value = "删除标识")
    private Integer rowState;

    /**
     * 格式: 2020-01-07 03:03:05
     */
    @ApiModelProperty(value = "最后修改时间", example="2020-10-22 10:03:22")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastUpdateTime;

    @ApiModelProperty(value = "用户姓名")
    private String userName;

    @ApiModelProperty(value = "登录名")
    private String logName;

    @ApiModelProperty(value = "密码")
    private String password;

    @ApiModelProperty(value = "工号")
    private String cardId;

    @ApiModelProperty(value = "昵称")
    private String nickName;

    @ApiModelProperty(value = "联系电话")
    private String tel;

    @Column(nullable = false)
    @ApiModelProperty(value = "手机")
    private String mobile;

    @ApiModelProperty(value = "电子邮件")
    private String email;

    @ApiModelProperty(value = "家庭住址")
    private String homeAdd;

    @ApiModelProperty(value = "家庭电话")
    private String homeTel;

    @ApiModelProperty(value = "家庭邮编")
    private String homeZipcode;

    @ApiModelProperty(value = "家庭邮编")
    private String fax;

    @ApiModelProperty(value = "拼音全拼")
    private String pinyin;

    @ApiModelProperty(value = "拼音首字母")
    private String pinyinInitial;

    @ApiModelProperty(value = "职级编码")
    private String careerRank;

    @ApiModelProperty(value = "职级")
    private String careerRankText;

    @ApiModelProperty(value = "职务")
    private String unitRank;

    /**
     * 1男；2女
     */
    @ApiModelProperty(value = "性别编码")
    private Integer sex;

    @ApiModelProperty(value = "性别")
    private String sexText;

    @ApiModelProperty(value = "教育程度编码")
    private Integer education;

    @ApiModelProperty(value = "教育程度")
    private String educationText;

    /**
     * 1有效；-1封锁；-2离退休；-3调离
     */
    @ApiModelProperty(value = "状态")
    private Integer status;

    @ApiModelProperty(value = "状态")
    private String statusText;

    @ApiModelProperty(value = "出生日期", example="2020-10-22 10:03:22")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date birthday;

    @ApiModelProperty(value = "年龄")
    private Integer age;

    @ApiModelProperty(value = "参加工作时间", example="2020-10-22 10:03:22")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date joinWork;

    @ApiModelProperty(value = "进入本单位时间", example="2020-10-22 10:03:22")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date joinCompany;

    @ApiModelProperty(value = "显示顺序")
    private Integer showOrder;

    @ApiModelProperty(value = "密级等级")
    private Integer mjLevel;

    @ApiModelProperty(value = "密级等级")
    private String mjLevelText;

    @ApiModelProperty(value = "直接领导")
    private String leaderText;

    @ApiModelProperty(value = "直接领导ID")
    private String leader;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "头像")
    private String photo;

    @ApiModelProperty(value = "身份证号")
    private String idNumber;

    @ApiModelProperty(value = "聊天工具ID")
    private String imId;

    @ApiModelProperty(value = "办公地点")
    private String workPlace;

    @ApiModelProperty(value = "CA证书序列号")
    private String certSN;

    @ApiModelProperty(value = "签名图片")
    private String signPhoto;

    @ApiModelProperty(value = "签名图片")
    private String cabinetCode;

    /**
     * -1否，1是
     */
    @ApiModelProperty(value = "是否在编用户")
    private Integer isFormation;

    @ApiModelProperty(value = "是否在编用户")
    private String isFormationText;

    @ApiModelProperty(value = "职称编码")
    private Integer professionalRank;

    @ApiModelProperty(value = "职称")
    private String professionalRankText;

    @ApiModelProperty(value = "人员编制编号")
    private String formation;

    @ApiModelProperty(value = "人员编制名称")
    private String formationText;

    @ApiModelProperty(value = "机构ID")
    private String unitId;

    /**
     * 所属区划
     */
    @Transient
    private String adid;

    /**
     * 所属区划父级id
     */
    @Transient
    private String fid;

    /**
     * 所属部门列表
     */
    @Transient
    private List<Di_deptDto> deptList;

}
